package com.ruantu.clothing.service;

import com.ruantu.clothing.entity.*;
import com.ruantu.clothing.util.MyException;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;
import java.util.Map;

/**
 * Created by Administrator on 2018/5/28 0028.
 */
public interface ProductionService {
    /**
     * 查询所有商品信息
     *
     * @return
     */
    List<Production> findAll(Production production, PageBean pageBean);

    /**
     * 生成excel表格
     *
     * @return
     */
    XSSFWorkbook download();

    /**
     * 导入excel
     *
     * @return
     */
    List<Production> daoRuExcel(MultipartFile files, User user, String gongyingshang);


    /**
     * 导出excel
     *
     * @return
     */
    XSSFWorkbook downExcel(Production production);

    /**
     * 更新状态
     *
     * @return
     */
    int updateState(Production production);

    /**
     * 批量新增商品
     *
     * @param list
     * @return
     */
    int insertSome(List<Production> list);

    /**
     * 删除商品
     *
     * @return
     */
    int delProduction(Production production);

    /**
     * 查询所有页面combobox
     *
     * @return
     */
    Map<String, Object> findCombobox(String jgid);

    /**
     * 新增商品
     *
     * @param production
     * @return
     */
    int save(Production production);

    /**
     * 查询是否存在该款号
     *
     * @return
     */
    int findByProduct(Production production);

    /**
     * 根据id查询
     *
     * @return
     */
    Production findById(Production production);

    List<Production> findProductCombobox(Production production);

    /**
     * 根据裁剪id
     *
     * @return
     */
    List<Production> findProductByTailorId(Production production);


    /***
     * 获得所有款号不分页
     * @param
     * @return
     */
    public List<Production> findAllForJGService(User u);

    /**
     * 下级机构保存商品
     *
     * @param production
     * @return
     */
    int saveDown(Production production);

    /**
     * 查询所有总部的商品
     *
     * @return
     */
    List<Production> findProductComboboxZongbu();

    /**
     * 次品厂入库combobox
     *
     * @return
     */
    List<Production> findCipinForProduct();

    /**
     * 查询零售款号
     *
     * @param
     * @return
     */
    List<ProductionDetails> findSaleProductCode(Production production);

    /**
     * 根据商品code查询详细数据零售开单用
     *
     * @param sale
     * @return
     */
    Sale findSaleByProductionDetailsId(Sale sale);

    /***
     * 获得出库单商品
     * @param chukuId
     * @return
     */
    List<Production> findAllProductForChuKuId(String chukuId);

    /**
     * 查询季节combobox
     *
     * @return
     */
    List<Combobox> findSeasonCombobox(String jgid);

    /**
     * 退货根据客户获得此客户所有单
     *
     * @return
     */
    List<Production> selectChuKuProductForKeHuIdService(String kehuId);


    Map<String, Object> selectAllAttrService(User u);

}
